package com.atguigu.gmallpublisher.mapper;


import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface SugarMapper {//虽然是接口,不是实现类,但是mybatis帮我们实现了,看上面的包,当我们调用selectGmv()方法,mybatis这个框架就会帮我们实现,使用jdbc连接把上面的select查询执行了

    @Select("select sum(order_amount) from dws_trade_province_order_window where toYYYYMMDD(stt)=#{date}")
    BigDecimal selectGmv(int date);//当调用selectGmv()方法,就会执行上面的sql,返回的sum(order_amount)为BigDecimal类型


    /*
┌─trademark_name─┬──────────────────────────gmv─┬─ct─┐
│ 苹果           │ 1376111.00000000000000000000 │  5 │
│ 华为           │  796413.00000000000000000000 │  6 │
│ TCL            │  664933.00000000000000000000 │  3 │
│ 三星           │  495825.00000000000000000000 │  7 │
│ 小米           │  245623.00000000000000000000 │  2 │
└────────────────┴──────────────────────────────┴────

List(map((trademark_name,苹果),(gmv,1376111),(ct,5)),
     map((trademark_name,华为),(gmv,796413),(ct,6)),
     ...)

     ===>resultMap((苹果,1376111),(华为,796413),...)
     */
    @Select("select trademark_name,sum(order_origin_total_amount) gmv,count(*) ct from dws_trade_sku_order_window where toYYYYMMDD(stt)" +
            "=#{date} group by trademark_name order by gmv desc limit #{limit}")
    List<Map> selectGmvByTm(@Param("date") int date, @Param("limit") int limit);


}
